"""
类方法（可调类变量、可被实例调用、可被类调用）
1、类方法通过@classmethod装饰器实现，只能访问类变量，不能访问实例变量；
2、通过cls参数传递当前类对象，不需要实例化。
"""


# 类定义
class Student:
    # 类属性定义
    name = '张三'
    ai = '喜欢'

    @classmethod
    def study(cls, class_name):
        print(cls.name, cls.ai, class_name)

    @staticmethod
    def run(sport_name):
        print(Student.name, Student.ai, sport_name)

    def eat(self, food_name):
        print(self.name, self.ai, food_name)
        return "success"


# 类方法调用
Student.study("化学")
# 静态方法调用
Student.run("跑步")
# 对象创建
s = Student()
print(s.eat("面条"))
print(s.name)
